<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2017/1/8
 * Time: 15:54
 * 公共控制器
 */
Class CommonAction extends Action{

      //初始化执行
      public function _initialize(){
            if(!cookie('loginId')){
                 $this->redirect("Login/Index");
                 exit();
            }
      }

      // 获取登录用户信息
      public function _getAdmin(){
           $id = _decrypt(cookie('loginId'));
           return $adminInfo = M('admin_login')->where("id=$id")->find();
      }

      // 获取系统信息
      public function _getSystem(){
            $system = array(); // 系统信息保存数组
            $system["SERVER_Uname"] = gethostbyaddr($_SERVER['REMOTE_ADDR']);
            $system["SERVER_ADDR"] = $_SERVER['SERVER_ADDR']; // ip
            $system["SERVER_NAME"] = $_SERVER['SERVER_NAME']; // 域名
            $system["SERVER_PORT"] = $_SERVER['SERVER_PORT']; // 端口
            $system["DOCUMENT_ROOT"] = $_SERVER['DOCUMENT_ROOT'];  // 系统所在目录
            $system["FILE"] = dirname(__FILE__); // 当前文件路径
            $system["SYS"]     = php_uname(); // 系统版本
            $system["LAN"]  = $_SERVER['HTTP_ACCEPT_LANGUAGE']; // 语言
            $system["TIME"] =  date("Y-m-d H:i:s",time()); //时间
            $system["CPU"]     = empty($_SERVER['PROCESSOR_IDENTIFIER'])?"无法获取CPU":$_SERVER['PROCESSOR_IDENTIFIER']; // 获取cpu
            $system["ROOT_NAME"]   = Get_Current_User(); // 进程用户名
            $system["SESSION_NUM"]    = count($_SESSION) ; // session数量
            $system["PHP_VERSION"]    = PHP_VERSION; // php 版本
            $system["ZEND_VERSION"]   = Zend_Version(); //Zend 版本
            $system["SERVER_SOFTWARE"]     = $_SERVER['SERVER_SOFTWARE']; // 服务器编译器
            return $system;
      }

    /**
     * 获取网站统计信息
     */
      public function _getIndfoStatis(){
            $webInfo = array();
      }


      public function _uploadfile($File,$PATH){
            if(is_dir($PATH)){
                  // 生成文件名
                  $file_name = time().getRandNum(10);
                  import("Class.pinyin",APP_PATH);
                  // 中文转拼音
                  $filename = pinyin::utf8_to(substr($File['name'],0,strrpos($File['name'],'.')));
                  $fileFix = substr($File['name'],strrpos($File['name'],'.'));
                  // 组合路径名
                  $new_file_P = $PATH.$file_name.$filename.$fileFix;
                  if($File['size']>C('UploadSize')){
                        $res = array(
                            'code'=> 400,
                            'msg'=> "文件大小不符合要求"
                        );
                        return $res;
                        exit();
                  }

                  // 上传文件
                  if(is_uploaded_file($File['tmp_name'])){
                        if(move_uploaded_file($File['tmp_name'],$new_file_P)){
                              $res = array(
                                  'code'=> 200,
                                  'msg'=> "上传成功"
                              );
                        }else{
                              $res = array(
                                  'code'=> 400,
                                  'msg'=> "上传失败"
                              );
                        }
                  }

                  $res['file'] = $File['name'];
                  $res['type'] = $File['type'];
                  $res['savepath'] = $new_file_P;
                  return $res;
            }
      }

      /**
       * @param $allcount [总记录数]
       * @param $nowpage  [当前的页数]
       * @param $url      [页面传递的url]
       * @return string   [返回分页信息]
       */
      Public function page($allcount,$nowpage,$pageLine,$url){
            $pageCount = ceil($allcount/$pageLine);
            $listNum = 8; // 页数列表总数
            $pagestr = '';
            //上一页
            if($nowpage!=1){
                  $pagestr.="<a href=".$url."page=".($nowpage-1).">上一页</a>";
            }
            //数字页
            $limt = $listNum/2;
            for($i=$limt;$i>=1;$i--){
                  $prevpage = $nowpage-$i;
                  if($prevpage<1){
                        continue;
                  }
                  $pagestr.= "<a href=".$url."page=".$prevpage.">$prevpage</a>";
            }
            $pagestr.="<a href='' class='active'>$nowpage</a>";
            for ($i=1;$i<$limt;$i++){
                  $nextPage = $nowpage+$i;
                  if($nextPage<=$pageCount){
                        $pagestr.="<a href=".$url."page=".$nextPage.">$nextPage</a>";
                  }else{
                        break;
                  }
            }
            //下一页
            if($nowpage!=$pageCount){
                  $pagestr.="<a href=".$url."page=".($nowpage+1).">下一页</a>";
            }

            return $pagestr;

      }

      public function _uploadImage($File,$PATH,$WIDTH,$HEIGHT){
            if(is_dir($PATH)){
                  // 生成文件名
                  $file_name = time().getRandNum(10);
                  // 组合路径名
                  $new_file_P = $PATH.$file_name.$File['name'];

                  if($File['size']>C('UploadSize')){
                        $res = array(
                              'code'=> 400,
                               'msg'=> "文件大小不符合要求"
                        );
                        return $res;
                        exit();
                  }

                  // 上传文件
                  if(is_uploaded_file($File['tmp_name'])){
                        if(move_uploaded_file($File['tmp_name'],$new_file_P)){
                              $res = array(
                                  'code'=> 200,
                                  'msg'=> "上传成功"
                              );
                        }else{
                              $res = array(
                                  'code'=> 400,
                                  'msg'=> "上传失败"
                              );
                        }
                  }

                  // 是否生成缩略图
                  if($WIDTH){
                       import("Class.Image",APP_PATH);
                       $Image = new Image();
                       $new_file_P = $Image::thumb($new_file_P,$WIDTH,$HEIGHT);
                  }
                  $res['file'] = $File['name'];
                  $res['type'] = $File['type'];
                  $res['savepath'] = $new_file_P;
                  return $res;
            }
      }

      /**
       * 显示提示页面
       * @param string $temp 要显示的模板
       * @param string $url 跳转的url
       * @param string $tips 提示内容
       */
      public function show($temp,$url,$tips){
            $template = 'template';
            $this->assign('tips',$tips);
            $this->assign('url',$url);
            $this->display($template.'/'.$temp);
      }

      /**
       * 按照数据结构生成HTML结构
       * @param $data 生成HTML的数据
       * @param $template html
       * @return string
       */
      public function createOptionHtml($data,$id,&$template){
            foreach($data as $v){
                  if(!empty($v['child'])){
                        $this->createOptionHtml($v['child'],$id);
                  }
                  if($id){
                        if($id==$v['id']) {
                              $template .= "<option value=" . $v['id'] . " selected = 'selected' >" . $v['html'] . $v['cname'] . "</option>";
                        }else{
                              $template .= "<option value=".$v['id'].">".$v['html'].$v['cname']."</option>";
                        }
                  }else {
                        $template .= "<option value=" . $v['id'] . ">" . $v['html'] . $v['cname'] . "</option>";
                  }
            }
            return $template;
      }
}